package net.aiion.weave.spi.injection;

import java.lang.annotation.Annotation;
import java.util.Collection;

import net.aiion.weave.spi.naming.Context;

public interface InjectionContext
{
    Context getContext();

    Object getInjectable();

    Class<?> getTargetType();

    Collection<? extends Annotation> getTargetAnnotations();

    boolean hasTargetAnnotation(Class<? extends Annotation> aAnnotationType);

    <T extends Annotation> T getTargetAnnotation(Class<T> aAnnotationType);

    Object forwardInjection();
}
